package StudentManagerSystem;

import java.util.Scanner;

public class Menu {
    //创建一个学生对象数组
    Student[] stu = new Student[100];

    //学生的人数

    public int stuCount = 0;
    //数组的长度
    int len = stu.length;
    Scanner sc = new Scanner(System.in);


    //显示学员列表信息
    public void allSelect(){
        for(int i = 0 ; i < stuCount ; i++){
            System.out.println("学生的学号为:"+stu[i].getNums()+"  学生的姓名为:"+stu[i].getName()+"  学生的性别为:"+
                    stu[i].getSex()+"  学生的年龄为:"+stu[i].getAge());
        }
        printMenu();
        swi();
    }
    //根据学号查找学生
    public void numsSelect(){
        System.out.println("请输入你想查找的学生的学号");
        int nums = sc.nextInt();
        for(int i = 0; i < stuCount ; i++){
            if(stu[i].getNums() == nums){
                System.out.println("学生的学号为:"+stu[i].getNums()+"  学生的姓名为:"+stu[i].getName()+"  学生的性别为:"+
                        stu[i].getSex()+"  学生的年龄为:"+stu[i].getAge());
                break;
            }
        }
        printMenu();
        swi();
    }

    //根据姓名查找学生
   // public Student nameSelect(){}

    //录入学员信息
    public void add(){
        int temp;
        Student[] stu1 = new Student[stu.length+1];
        stu1=stu;
        //当学生对象还没有超过学生对象数组时
       do {
            stu[stuCount] = new Student();
            System.out.println("请输入学生的学号");
            stu[stuCount].setNums(sc.nextInt());
            String temp1 = sc.nextLine();
            System.out.println("请输入学生姓名:");
          //  temp1 = sc2.nextLine();
            stu[stuCount].setName(sc.nextLine());
            System.out.println("请输入学生的性别:");
          //  temp1 = sc.nextLine();
            stu[stuCount].setSex(sc.nextLine());
            System.out.println("请输入学生的年龄:");
            stu[stuCount].setAge(sc.nextInt());
            System.out.println("继续录入请输入'1',否则请输入'0'");
            temp = sc.nextInt();
            temp1 = sc.nextLine();
            stuCount++;
       }while(temp==1);
       printMenu();
       swi();
        //当学生对象超过了学生对象数组时,数组扩容
        if (len<stuCount){

        }
    }
    //修改学员信息
    public void change(int nums){
        System.out.println("输入'1'修改姓名,输入'2'修改性别,输入'3'修改年龄");
        int temp = sc.nextInt();
        temp = judge(1,3,temp);
        String temp1 = sc.nextLine();
        switch (temp){
            case 1:for(int i = 0 ; i < stuCount ;i++) {
                if(stu[i].getNums()==nums)
                        stu[i].setName(sc.nextLine());
            }
            break;
            case 2:for(int i = 0 ; i < stuCount ;i++) {
                if(stu[i].getNums()==nums)
                        stu[i].setSex(sc.nextLine());
            }
                break;
            case 3:for(int i = 0 ; i < stuCount ;i++) {
                if(stu[i].getNums()==nums)
                        stu[i].setAge(sc.nextInt());
            }
                break;
        }
        System.out.println("是否要继续修改,继续填'1',退出填'0'");
        temp = sc.nextInt();
        temp = judge(0,1,temp);
        if(temp==1){
            System.out.println("请要修改学生信息的学号");
            temp = sc.nextInt();
            change(temp);
        }else{
            printMenu();
            swi();
        }

    }
    //删除学员信息
    public void del(int nums){
       // Student stu1 = new Student();
        for(int i = 0; i <stuCount ;i++){
            if(stu[i].getNums()==nums){
                i=i;
                //当 后一个学生数不等于空时,把下一个学生值给前一个学生
                while(stu[i+1]!=null) {
                    stu[i] = stu[i+1];
                    i++;
                }
                stuCount--;
            }
        }
        System.out.println("是否要继续删除,继续按'1',退出按'0'");
        int temp = sc.nextInt();
        temp = judge(0,1,temp);
        if(temp == 1){
            System.out.println("请输入要删除信息的学员学号");
            temp = sc.nextInt();
            del(temp);
        }else{
            printMenu();
            swi();
        }
    }

    public void printMenu(){
        System.out.println("1 显示学院列表信息");
        System.out.println("2 录入学员信息");
        System.out.println("3 修改学员信息");
        System.out.println("4 删除学员信息");
        System.out.println("5 查找学生信息");
        System.out.println("6 退出系统");
    }
    public void swi(){
        Scanner sc = new Scanner(System.in);
        int temp = sc.nextInt();
        temp = judge(1,6,temp);
        switch (temp){
            case 1:
                allSelect();break;
            case 2: add();break;
            case 3:
                System.out.println("请输入要更改信息的学生学号");
                change(sc.nextInt());break;
            case 4:
                System.out.println("请输入要删除信息的学生学号");
                del(sc.nextInt());break;
            case 5:numsSelect();break;
            case 6:break;
        }
    }
    public int judge(int min,int max,int temp){
        while(min>temp||max<temp){
            System.out.println("请规范输入");
            temp = sc.nextInt();
        }
        return temp;
    }
}

